Uncloneable registration of an internet of things (IoT) device in a network

ABSTRACT

An IoT device has a public device identifier and a private device identifier, where the public device identifier is publicly available and the private device identifier is secret but kept in a secure device database as a correspondence. A registration request is sent from the IoT device to an association server in communication with the device database having an association between IoT public identifier and a corresponding IoT private identifier. The association server which receives the registration request responds with a registration acknowledgement containing, in encrypted form, the private device identifier of the original request and, optionally, the public device identifier associated with the registration request. The requesting IoT device receives the association acknowledgement, decrypts the private device identifier, compares it to its own device identifier, and if they match, sends one or more association requests.

FIELD OF THE INVENTION

The present invention relates to a method for registration of an Internet of Things (IoT) device. In particular, the invention relates to the secure and uncloneable registration of an IoT device to a wireless local area network (WLAN) using a remote association server which maintains secret private/public device data.

BACKGROUND OF THE INVENTION

A new type of station belonging to a class known as Internet of Things (IoT) devices are emerging for use in wireless computer networks. These IoT devices are typically small dedicated-use computers which have wireless network connectivity, with sensors or connectivity to other information processing systems, and which communicate information to a central or distributed series of host computers. Examples of IoT devices include home security camera and entry control systems, biomedical monitors for blood pressure or blood glucose, pacemakers with remotely accessible event logs, electrical distribution systems such as smart electric meters, and many other such dedicated purpose devices.

An IoT device for a wireless local area network (WLAN) typically has an ISO layer 2 address, such as a Media Access Controller (MAC), and an ISO layer 3 address, such as an Internet Protocol (IP) address, which is statically assigned or dynamically assigned such as by a Dynamic Host Configuration Protocol (DHCP) server. The MAC address is typically printed on the device or is otherwise publicly accessible.

An issue specific to IoT devices is the requirement for secure registration of the device to a particular network. In a prior art IoT registration sequence, the IoT device makes itself “discoverable”, such as it may transmit association requests to a particular Service Set IDentifer (SSID) of an Access Point (AP) by sending WLAN association request packets, so that a wireless access point (AP) is able to identify the station by MAC address and associate with it into the infrastructure. However, in the case of an IoT device which contains proprietary information and is intended to be used in a secure manner, this type of open association compromises the security of the network and the security of the data the IoT devices accesses. One type of security risk is the use of the MAC address for registration into a network different from an original network, or registration of an alien device into a network. This type of security risk occurs because it is possible to “clone” a new station onto an existing WLAN by cloning (copying) the MAC address of an existing station as the MAC address of the new station, thereby authenticating the station for use in the WLAN by its trusted MAC address. It is desired to provide a protocol for the secure registration of an IoT device to prevent the use or re-registration of the device to other networks. It is also desired to provide an uncloneable registration of an IoT device into a wireless network.

OBJECTS OF THE INVENTION

A first object of the invention is a method for registration of an IoT device onto a network, where the IoT device has a public device identifier detectable externally and a device private identifier which is secret, where the association between IoT device public identifier and IoT private device identifier which are both maintained as a key:value pair in the device database of an association server which is remotely accessible, the registration method comprising the IoT sending a registration request accompanied by the public device identifier to the association server, the association server receiving the registration request accompanied by device public identifier, the association server responding with an encrypted registration acknowledgement containing the device public identifier and the device private identifier from the association server device database, the IoT device receiving the encrypted registration acknowledgement, decrypting the registration acknowledgement, extracting the private device identifier and comparing it with its own private device identifier to test for a match, and if the match is true, the IoT device sending an association request to enable the IoT device association with a wireless network.

A second object of the invention is an IoT device which has a public device identifier and a private device identifier, the IoT device sending a registration request containing the device public identifier, the IoT device, upon receipt of a registration acknowledgement containing an encrypted private device identifier, extracting the private device identifier, comparing the received private device identifier to the IoT private device identifier to determine a match, upon detection of a match, the IoT device sending an association request.

SUMMARY OF THE INVENTION

An IoT device with wireless networking capabilities (such as Bluetooth or 802.11) has a unique public device ID such as a MAC address, or an IP address, and also a unique private identifier which is not publicly accessible. The MAC address for WLAN is a 48 bit identifier which is unique to any other MAC address of any other device (unless having the capability to be cloned to a different MAC address), and the IP address is a 32 bit address which may or may not be unique or constant.

A remote association server maintains a device database where the unique public device ID and unique private identifier for each IoT device are stored as a key:value pair with the unique public identifier as the key and private (secret) device ID as the value, or vice versa. The device database public and private device ID pairs match the IoT private and public addresses, and so is typically maintained by the manufacturer of the IoT device which has these capabilities. The remote association server optionally has a gateway database identifying a public device ID and gateway ID as a key:value pair, as well as an optional user database with a username and password for user authentication as well as optional additional fields for association of the username to particular public device identifiers, gateway IDs, or other information.

A registration step for the IoT device includes a user action of registering the IoT device using at least one of: a bar code, a QR code scan, an optical indication, or a manual entry. The registration step results in the public unique device identifier being associated with a gateway ID corresponding to the gateway address of the IoT device, such as the public IP address of the gateway.

A local authentication server is operative as a standalone server accessible to the IoT devices, or is incorporated into a gateway router having a connection to the internet. The IoT device issues an association request to the local authentication server, which forwards the association request to the association server using the IoT public device identifier. The Association server receives the optionally encrypted registration request, and responds with a registration acknowledgement which includes the private device identifier of the IoT device extracted from the association server device database using the public device identifier of the registration request. The authentication server forwards the encrypted registration acknowledgement which includes the private device identifier to the requesting IoT device. The requesting IoT device compares the received private device identifier with its own private device identifier, and if they match, the IoT device begins advertising for association so that it may complete the association with the WLAN.

Association of an IoT device with an unauthorized network is thereby prevented by the requirement that the IoT device receive an encrypted private device identifier (which prevents cloning of the Mac Address by an unauthorized party), and prevents the association to an unregistered network by comparing the association request with the registered gateway in the association server gateway database.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows a block diagram and registration sequence for a physically uncloneable IOT registration event using a separate authentication server.

FIG. 2 shows a block diagram and registration sequence for a physically uncloneable IOT registration event using a gateway router which includes an authentication server.

FIG. 3 shows a block diagram for an example IoT device.

DETAILED DESCRIPTION OF THE INVENTION

FIG. 1 shows a block diagram of the servers and devices of the registration method, as well as a time diagram for progression of the registration sequence. An Internet of Things (IoT) device 102 internally maintains a public device identifier and a private device identifier. The public device identifier is available through an electronic interface, wireless interface, or is in printed form on the outside of the device, whereas the private device identifier is secret. The IoT device is typically a wireless device, with a wireless local area network (WLAN) interface, a Bluetooth wireless interface, or a ZigBee wireless interface. The IoT device 102 typically has an ISO layer 2 address such as a MAC address for WLAN, and a layer 3 address such as an IP address for connectivity to internet hosts and other devices having layer 3 addresses. Authentication server 104 is responsible for the centralized handling of IoT device registration requests from all of the IoT devices on the network access point (such as gateway router 106), for which a particular single IoT device 102 is shown. The IoT devices may communicate in a wireless infrastructure using one or more gateway routers 106, which provide network address translation (NAT) and firewall functionality, for example providing that TCP connections may only originate inside the local area network. The gateway router 106 typically has one or more interfaces which provide access to the internet and other publicly available host computers. A registration server 110 is used for maintaining entries into the databases of the association server 112.

One of the association server 112 databases is a device database 114 which contains key:value entries for the binding between the IoT public device address and the IoT private (secret) device address for each IoT device. Another association server databases are the gateway database 116, which optionally registers one or more gateway server identifiers to each IoT public device identifier. An optional user database 118 has bindings between a username and password, for access to the device database or gateway database, and the user database 118 includes entries which indicate which devices (such as by using the IoT public device identifier) is associated with a particular user.

The IoT public device identifier, IoT private device identifier, and gateway identifier are all unique identifiers, such that a lookup request by private device identifier, public device identifier, or gateway identifier are each referencing unique identifiers which may be operative as unique keys of each database. As the layer 2 network layer specifies that a unique address be assigned to each device, the MAC address may be a suitable use for the public device identifier and gateway identifier. The private device identifier is known to the manufacturer when burned into the IoT device and a copy is maintained in the device database 114, but is otherwise kept secret in the present system. The public device identifier and secret private device identifier may be any form of universally unique identifier (UUID) known in the prior art.

The device database 114 is initialized with key:value pairs of IoT public device identifier and accompanying IoT private device identifier. As the IoT private device identifier is secret, the device database may be initialized and updated by a manufacturer of the IoT devices with knowledge of the public and private identifiers of each manufactured IoT device. In one example of the invention, the key is the IoT public device identifier such as MAC address, and the value is the IoT private device identifier of each key:value pair.

The registration sequence for an IoT device starts with the IoT device sending a registration request 134, which identifies the requester using the IoT public device ID. The authentication server 104 receives the registration request 134 from the IoT device 102, and forwards the registration request 136 to the gateway router 106, which performs network address translation (NAT), optionally domain name service (DNS) address resolution, and forwards the registration request 138 to the association server 112. The association server may handle the request several different ways. At the most basic level, the association server 112 looks up the private device identifier from the public device identifier from the request 138 using device database 114, and sends a registration acknowledgement 140 which contains the IoT private device identifier associated with the IoT public device identifier of the request 138, where the acknowledgement 140 is encrypted to maintain the secrecy of the IoT private device identifier. The gateway router 106 routes the registration acknowledgement 142 to authentication server 104, which forwards the registration acknowledgement 144 back to the requesting device 102. The requesting IoT device 102 decrypts the registration acknowledgement, optionally extracts the public device identifier and confirms that it matches its own public identifier of the original request, and then extracts the private device identifier which was originally derived from the device database 114. If the private device identifier of the association acknowledgement 144 matches the IoT private device identifier stored within the IoT device 102, then the IoT device is authorized to send association request advertisements 146, which the router gateway 106 acknowledges 148, after which the access point router 106 and IoT device 102 communicate 150 in a prior art manner, either using encrypted or unencrypted communications as part of a wireless local area network infrastructure.

The authentication server 104 may cache subsequent device registration requests 134 after receiving the first registration acknowledgement 140 for a particular device. In this manner, the subsequent registration acknowledgements may be provided locally from authentication server 104. Alternatively, the association server 112 may respond to requests from the authentication server 104 such that the authentication server 104 keeps an encrypted local copy of the device database which is under the authority of the association server 112, such as by requiring the encrypted local copy of the device database to be in periodic communication with the association server 112 and cancelling the received registration acknowledgements so they are not available for future use as a way of bypassing the request routing to the association server 112.

The association server 112 may provide different levels of authentication upon receipt of a registration request 138. In one example of the invention, the association server receiving the registration request 138 may also utilize a gateway database 116 to verify that the gateway 106 making the request 138 is authorized to do so for the particular IoT public device identifier. This may be done by having each subject IoT public device identifier registered to a particular gateway identifier, such as by using the public IP address or public MAC address for the internet port of the gateway. If the public IP address of the gateway is dynamic or is otherwise subject to change, the MAC address associated with the public IP interface, or other unique identifier of the gateway router may be used.

FIG. 2 shows an example embodiment of a physically uncloneable registration server where server 202 is referenced according to the functions it is performing, including wireless access point (WAP) functions to the IoT device 102, gateway and NAT functions to the association server 112, and also authentication server functions such as were performed by authentication server 106 of FIG. 1. In this example, the registration request 134 forwarded as 138 is sent to association server 112 as before, which results in a registration acknowledgement 140 sent to server 202. Server 202 forwards the registration acknowledgement 210 to IoT device 102, and if the IoT device 102 determines that the private device identifier from device database 114 matches its own private identifier, the IoT device 102 issues an association request 212, which is acknowledged 214 by AP 202 and infrastructure communications 216 are thereafter initiated and continue for the duration of the association between IoT device 102 and wireless access point gateway 202.

FIG. 3 shows an example IoT device 302 which includes an antenna 304 for communication with an AP (not shown). A controller 306 which includes a transmitter, receiver, and baseband processor is coupled to the antenna and is operative to execute the protocols shown in FIGS. 1 and 2. The controller 306 is coupled to a public identifier Dev_m 308, which is accessible directly to the controller 306, and may include information printed on the IoT device 302, or is transmitted by the IoT device (such as the registration request 134 of FIGS. 1 and 2). The private identifier ID_m 316 is not publicly accessible. In one example of the invention shown in FIG. 3, the private ID_m 316 may be hashed 314 using a Secure Hash Algorithm (SHA) such as the SHA-2 as described by the United States National Security Agency (NSA). An incoming registration acknowledgement such as 140 of FIG. 1 or 2 which includes a secure ID_m as a hash may be compared 318 to generate an authorization for association 312 to the controller 306. Alternatively, the ID_m 316 may be directly coupled to the controller 306, which decrypts an incoming registration acknowledgement 140 and the decrypted received ID_m from message 140 may be directly compared to the ID_m 316 which is unique to the IoT device 302 and not directly accessible from an external query. 

We claim:
 1. An Internet of Things (IoT) processor, the IoT processor comprising: storage; a wireless processor transmitting wireless packets and receiving wireless packets, the wireless processor having a receive packet input and a transmit packet output; the IoT processor storing a public identifier value discernable by examination of the IoT processor and coupled to the wireless processor; the IoT processor storing a private identifier value not discernable by examination of the IoT processor; a hash processor configured to output a hashed private identifier value from the private identifier value; a comparator configured to compare the hashed private identifier value against a device registration acknowledgement hashed value; an association request generator coupled to the wireless processor, the association request generator configured to generate an association request containing the public identifier value for transmission by the wireless processor; the wireless processor configured to receive a device registration acknowledgement containing a device registration acknowledgement public value and a device registration acknowledgement hashed value; the association request generator configured to compare the device registration acknowledgement public value against the public identifier value to assert a first match when the device registration acknowledgement public value equals the public identifier value, and also to compare the device registration acknowledgement hashed value against the hashed private identifier value to assert a second match when the device registration acknowledgement hashed value equals the hashed private identifier value; the association request generator issuing an association request to the wireless processor when the first match and the second match both occur.
 2. The IoT processor of claim 1 where the device registration acknowledgement is encrypted and the wireless processor decrypts at least one of: the device registration acknowledgement hashed value, or the device registration acknowledgment public value.
 3. The IoT processor of claim 1 where the transmitted wireless packets or the received wireless packets are configured to include at least one of: an 802.11 protocol, a Bluetooth protocol, or a Zigbee protocol.
 4. The IoT processor of claim 1 where the public identifier value is at least one of: a MAC address, or an IP address.
 5. The IoT processor of claim 1 where the public identifier value is visible as a bar code, a QR code, or an optical indicator.
 6. The IoT processor of claim 1 where the hash processor is configured to form a hash value according to a Secure Hash Algorithm (SHA) such as SHA-2.
 7. The IoT processor of claim 1 where the private identifier value is generated as an uncloneable value.
 8. An Internet of Things (IoT) processor comprising: a baseband processor for receiving and transmitting radio frequency (RF) packets, the baseband processor configured to transmit registration requests and receive registration acknowledgements containing a registration acknowledgement hash value; storage for a public identifier value coupled to the baseband processor; storage for a private identifier value coupled to a hash generator; a comparator for receiving a hashed value from the hash generator and comparing it with the registration acknowledgement hash value and asserting a match when the hashed value from the hash generator and the registration acknowledgement hash value are equal to each other, the baseband processor configured to transmit an association request when the match is asserted.
 9. The IoT processor of claim 8 where the association request is an 802.11 association packet to join an infrastructure.
 10. The IoT processor of claim 8 where the private identifier value is a physically uncloneable value.
 11. The IoT processor of claim 8 where the public identifier value is physically observable.
 12. The IoT processor of claim 8 where the public identifier value is at least one of: a MAC address, an IP address, a layer 2 address, or a layer 3 address.
 13. The IoT processor of claim 8 where the public identifier value is at least one of: a bar code, a QR code, or a visible identifier.
 14. The IoT processor of claim 8 where the hash generator is configured to use a Secure Hash Algorithm (SHA) or SHA-2.
 15. The IoT processor of claim 8 where the baseband processor is configured for at least one of: 802.11 Wireless Local Area Network (WLAN) communications, Bluetooth communications, or Zigbee communications.
 16. The IoT processor of claim 8 where the association request is an 802.11 compatible association request to join an access point infrastructure. 